#ifndef __PLUGIN_PICTURE_H__
#define __PLUGIN_PICTURE_H__

#define IMAGE_IS_OUR_FILE       1
#define IMAGE_NOT_OUR_FILE      0
#define IMAGE_OPEN_FILE_FAIL    -1

typedef struct
{
	void *handle;							/* Filled in by app */
	char *filename;							/* Filled in by app */
	char *description;						/* The description that is shown in the preferences box */
	int (*init) (struct pe_image_cfg *cfg);					/* Called when the plugin is loaded */
	void (*about) (void);					/* Show the about box */
	void (*configure) (void);
	int (*is_our_file) (char *filename);	/* Return 1 if the plugin can handle the file */
	int (*decode) (char *filename, void *args);		/* deocode the image */
	int (*show) (void);							/* deocode the image */
	int (*abort) (void);					/* Tricky one */
	int (*cleanup) (void);					/* Called when exit */
	int (*get_info) (char *filename, struct image_info *info);	/* Function to grab the title string */

	int (*rotate)(unsigned char rotate_angle);	/*Function to rotate current JPEG*/
	int (*zoom)(struct Rect *dstRect, struct Rect *srcRect);
    int (*swap) (int type);
    int (*option) (int output_format, int user_depth, int user_shift, int user_vip);
    int (*set_param) (int display_type, int output_format, int user_depth, int user_shift, int user_vip);
    int (*init_network) (UINT32 addr, UINT32 len, struct pe_image_cfg *cfg);
	int (*decode_network) (char *filename, void *args);
}ImagePlugin;




#endif// __PLUGIN_PICTURE_H__


